1. Technical Field
The present disclosure relates to code obfuscation and more specifically to data transforms based on discrete logarithm properties.
2. Introduction
Software publishers often attempt to restrict access to portions of compiled software executables to thwart reverse engineering attempts while still allowing the executables to function properly. Reverse engineering is the practice of dissecting and/or analyzing software to understand how it works. On certain systems, reverse engineering can retrieve information stored within software such as information related to cryptographic keys or copy protection schemes. Reverse engineers can even tamper with the software itself or call specific portions of the software for their own unauthorized purposes.
In the field of security of open platforms, data obfuscation is one way to protect portions of code. Indeed, some designers of such platforms have an obligation to protect keys, which processes are running, etc. On the other side, attackers try to gain information that allows copies of the software to be made, or in other cases to extract sensitive information such as keys used to protect content.
Obfuscation is one of many approaches to “code protection” to protect running code against this kind of attack. In this domain, data masking is one approach to code protection, but for this approach to function properly, the data, once masked, should never appear in clear form in the code.